[INFO] fetching crate ruby 0.0.2...
[INFO] fixing ruby-0.0.2 against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=start=2015 for pr-157817-2
[INFO] extracting crate ruby 0.0.2 into /workspace/builds/worker-2-tc1/source
[INFO] started tweaking crates.io crate ruby 0.0.2
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate ruby 0.0.2
[INFO] tweaked toml for crates.io crate ruby 0.0.2 written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate ruby 0.0.2 on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate ruby 0.0.2 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded oak-vfs v0.0.10
[INFO] [stderr]   Downloaded oak-core v0.0.10
[INFO] [stderr]   Downloaded oak-ruby v0.0.10
[INFO] [stderr]   Downloaded cranelift-module v0.103.0
[INFO] [stderr]   Downloaded cranelift-native v0.103.0
[INFO] [stderr]   Downloaded cranelift-control v0.103.0
[INFO] [stderr]   Downloaded cranelift-bforest v0.103.0
[INFO] [stderr]   Downloaded wasmtime-jit-icache-coherence v16.0.0
[INFO] [stderr]   Downloaded cranelift-codegen-shared v0.103.0
[INFO] [stderr]   Downloaded region v2.2.0
[INFO] [stderr]   Downloaded cranelift-isle v0.103.0
[INFO] [stderr]   Downloaded cranelift v0.103.0
[INFO] [stderr]   Downloaded cranelift-entity v0.103.0
[INFO] [stderr]   Downloaded cranelift-jit v0.103.0
[INFO] [stderr]   Downloaded cranelift-frontend v0.103.0
[INFO] [stderr]   Downloaded cranelift-codegen-meta v0.103.0
[INFO] [stderr]   Downloaded ruby-ir v0.0.2
[INFO] [stderr]   Downloaded cranelift-codegen v0.103.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 91d6823128f646a7543d44b91c208590f09ddbe07495bebb2ae0162f6ddf5ec4
[INFO] running `Command { std: "docker" "start" "91d6823128f646a7543d44b91c208590f09ddbe07495bebb2ae0162f6ddf5ec4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "91d6823128f646a7543d44b91c208590f09ddbe07495bebb2ae0162f6ddf5ec4" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "91d6823128f646a7543d44b91c208590f09ddbe07495bebb2ae0162f6ddf5ec4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "91d6823128f646a7543d44b91c208590f09ddbe07495bebb2ae0162f6ddf5ec4" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=start=2015", kill_on_drop: false }`
[INFO] [stderr]    Compiling zerocopy v0.8.42
[INFO] [stderr]    Compiling libc v0.2.179
[INFO] [stderr]    Compiling cranelift-isle v0.103.0
[INFO] [stderr]    Compiling cranelift-codegen-shared v0.103.0
[INFO] [stderr]    Compiling target-lexicon v0.12.16
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]     Checking arbitrary v1.4.2
[INFO] [stderr]     Checking cranelift-entity v0.103.0
[INFO] [stderr]     Checking rustc-hash v1.1.0
[INFO] [stderr]     Checking slice-group-by v0.3.1
[INFO] [stderr]     Checking gimli v0.28.1
[INFO] [stderr]     Checking bumpalo v3.20.2
[INFO] [stderr]     Checking form_urlencoded v1.2.2
[INFO] [stderr]     Checking notify-types v2.1.0
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]    Compiling cranelift-codegen-meta v0.103.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking cranelift-bforest v0.103.0
[INFO] [stderr]     Checking cranelift-control v0.103.0
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking inotify-sys v0.1.5
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]     Checking wasmtime-jit-icache-coherence v16.0.0
[INFO] [stderr]     Checking region v2.2.0
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]     Checking inotify v0.11.1
[INFO] [stderr]    Compiling cranelift-codegen v0.103.0
[INFO] [stderr]     Checking notify v8.2.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking hashbrown v0.13.2
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking regalloc2 v0.9.3
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking twox-hash v2.1.2
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking icu_properties v2.1.2
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking triomphe v0.1.15
[INFO] [stderr]     Checking ruby-types v0.0.2
[INFO] [stderr]     Checking ruby-ir v0.0.2
[INFO] [stderr]     Checking oak-core v0.0.10
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking oak-ruby v0.0.10
[INFO] [stderr]     Checking oak-vfs v0.0.10
[INFO] [stderr]     Checking cranelift-module v0.103.0
[INFO] [stderr]     Checking cranelift-native v0.103.0
[INFO] [stderr]     Checking cranelift-frontend v0.103.0
[INFO] [stderr]     Checking cranelift-jit v0.103.0
[INFO] [stderr]     Checking cranelift v0.103.0
[INFO] [stderr]     Checking ruby v0.0.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `FunctionBuilder`
[INFO] [stdout]  --> src/architecture/optimizing_compiler.rs:8:26
[INFO] [stdout]   |
[INFO] [stdout] 8 | use cranelift_frontend::{FunctionBuilder, FunctionBuilderContext};
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Module`
[INFO] [stdout]  --> src/architecture/optimizing_compiler.rs:9:24
[INFO] [stdout]   |
[INFO] [stdout] 9 | use cranelift_module::{Module};
[INFO] [stdout]   |                        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context` and `Instruction`
[INFO] [stdout]  --> src/profiler/profiler.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::vm::{Context, Instruction};
[INFO] [stdout]   |                 ^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hotness_detector::HotnessDetector`
[INFO] [stdout]  --> src/profiler/visualizer.rs:5:63
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::architecture::{execution_engine::CompilationState, hotness_detector::HotnessDetector};
[INFO] [stdout]   |                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FunctionBuilder`
[INFO] [stdout]  --> src/architecture/optimizing_compiler.rs:8:26
[INFO] [stdout]   |
[INFO] [stdout] 8 | use cranelift_frontend::{FunctionBuilder, FunctionBuilderContext};
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Module`
[INFO] [stdout]  --> src/architecture/optimizing_compiler.rs:9:24
[INFO] [stdout]   |
[INFO] [stdout] 9 | use cranelift_module::{Module};
[INFO] [stdout]   |                        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context` and `Instruction`
[INFO] [stdout]  --> src/profiler/profiler.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::vm::{Context, Instruction};
[INFO] [stdout]   |                 ^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hotness_detector::HotnessDetector`
[INFO] [stdout]  --> src/profiler/visualizer.rs:5:63
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::architecture::{execution_engine::CompilationState, hotness_detector::HotnessDetector};
[INFO] [stdout]   |                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/codegen/mod.rs:703:9
[INFO] [stdout]     |
[INFO] [stdout] 703 |         _ => {
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/codegen/mod.rs:703:9
[INFO] [stdout]     |
[INFO] [stdout] 589 |         Expression::Variable(name) => {
[INFO] [stdout]     |         -------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 607 |         Expression::GlobalVariable(name) => {
[INFO] [stdout]     |         -------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 610 |         Expression::InstanceVariable(name) => {
[INFO] [stdout]     |         ---------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 613 |         Expression::ClassVariable(name) => {
[INFO] [stdout]     |         ------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 703 |         _ => {
[INFO] [stdout]     |         ^ ...and 9 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/codegen/mod.rs:703:9
[INFO] [stdout]     |
[INFO] [stdout] 703 |         _ => {
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/codegen/mod.rs:703:9
[INFO] [stdout]     |
[INFO] [stdout] 589 |         Expression::Variable(name) => {
[INFO] [stdout]     |         -------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 607 |         Expression::GlobalVariable(name) => {
[INFO] [stdout]     |         -------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 610 |         Expression::InstanceVariable(name) => {
[INFO] [stdout]     |         ---------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 613 |         Expression::ClassVariable(name) => {
[INFO] [stdout]     |         ------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 703 |         _ => {
[INFO] [stdout]     |         ^ ...and 9 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/vm/mod.rs:534:41
[INFO] [stdout]     |
[INFO] [stdout] 534 |     pub fn get_class_methods(&mut self, name: &str) -> Result<RubyValue, RubyError> {
[INFO] [stdout]     |                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class_name`
[INFO] [stdout]    --> src/vm/mod.rs:564:9
[INFO] [stdout]     |
[INFO] [stdout] 564 |         class_name: &str,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_class_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `method_name`
[INFO] [stdout]    --> src/vm/mod.rs:565:9
[INFO] [stdout]     |
[INFO] [stdout] 565 |         method_name: &str,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_method_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `func`
[INFO] [stdout]    --> src/vm/mod.rs:566:9
[INFO] [stdout]     |
[INFO] [stdout] 566 |         func: Box<dyn Fn(&mut Context, Vec<RubyValue>) -> RubyResult<RubyValue>>,
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_func`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]    --> src/architecture/optimizing_compiler.rs:374:46
[INFO] [stdout]     |
[INFO] [stdout] 374 |                     Instruction::LoadLibrary(path) => {
[INFO] [stdout]     |                                              ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lib_name`
[INFO] [stdout]    --> src/architecture/optimizing_compiler.rs:378:46
[INFO] [stdout]     |
[INFO] [stdout] 378 |                     Instruction::GetFunction(lib_name, func_name) => {
[INFO] [stdout]     |                                              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lib_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `func_name`
[INFO] [stdout]    --> src/architecture/optimizing_compiler.rs:378:56
[INFO] [stdout]     |
[INFO] [stdout] 378 |                     Instruction::GetFunction(lib_name, func_name) => {
[INFO] [stdout]     |                                                        ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_func_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arg_count`
[INFO] [stdout]    --> src/architecture/optimizing_compiler.rs:382:47
[INFO] [stdout]     |
[INFO] [stdout] 382 |                     Instruction::CallFunction(arg_count) => {
[INFO] [stdout]     |                                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_arg_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/vm/mod.rs:534:41
[INFO] [stdout]     |
[INFO] [stdout] 534 |     pub fn get_class_methods(&mut self, name: &str) -> Result<RubyValue, RubyError> {
[INFO] [stdout]     |                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class_name`
[INFO] [stdout]    --> src/vm/mod.rs:564:9
[INFO] [stdout]     |
[INFO] [stdout] 564 |         class_name: &str,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_class_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `method_name`
[INFO] [stdout]    --> src/vm/mod.rs:565:9
[INFO] [stdout]     |
[INFO] [stdout] 565 |         method_name: &str,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_method_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `func`
[INFO] [stdout]    --> src/vm/mod.rs:566:9
[INFO] [stdout]     |
[INFO] [stdout] 566 |         func: Box<dyn Fn(&mut Context, Vec<RubyValue>) -> RubyResult<RubyValue>>,
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_func`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/architecture/optimizing_compiler.rs:553:27
[INFO] [stdout]     |
[INFO] [stdout] 553 |         Instruction::Jump(offset) => {
[INFO] [stdout]     |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/architecture/optimizing_compiler.rs:556:34
[INFO] [stdout]     |
[INFO] [stdout] 556 |         Instruction::JumpIfFalse(offset) => {
[INFO] [stdout]     |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/architecture/optimizing_compiler.rs:559:33
[INFO] [stdout]     |
[INFO] [stdout] 559 |         Instruction::JumpIfTrue(offset) => {
[INFO] [stdout]     |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class`
[INFO] [stdout]    --> src/lib.rs:246:37
[INFO] [stdout]     |
[INFO] [stdout] 246 |     pub fn define_method(&mut self, class: &str, name: &str, _func: Box<dyn Fn()>) -> Result<()> {
[INFO] [stdout]     |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_class`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/lib.rs:246:50
[INFO] [stdout]     |
[INFO] [stdout] 246 |     pub fn define_method(&mut self, class: &str, name: &str, _func: Box<dyn Fn()>) -> Result<()> {
[INFO] [stdout]     |                                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Generation` is more private than the item `GenerationalGC::set_threshold`
[INFO] [stdout]    --> src/gc/generational.rs:234:5
[INFO] [stdout]     |
[INFO] [stdout] 234 |     pub fn set_threshold(&mut self, generation: Generation, threshold: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `GenerationalGC::set_threshold` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Generation` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/gc/generational.rs:10:1
[INFO] [stdout]     |
[INFO] [stdout]  10 | enum Generation {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `IncrementalGCState` is more private than the item `IncrementalGC::state`
[INFO] [stdout]    --> src/gc/incremental.rs:248:5
[INFO] [stdout]     |
[INFO] [stdout] 248 |     pub fn state(&self) -> IncrementalGCState {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `IncrementalGC::state` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `IncrementalGCState` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/gc/incremental.rs:10:1
[INFO] [stdout]     |
[INFO] [stdout]  10 | enum IncrementalGCState {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]    --> src/architecture/optimizing_compiler.rs:374:46
[INFO] [stdout]     |
[INFO] [stdout] 374 |                     Instruction::LoadLibrary(path) => {
[INFO] [stdout]     |                                              ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lib_name`
[INFO] [stdout]    --> src/architecture/optimizing_compiler.rs:378:46
[INFO] [stdout]     |
[INFO] [stdout] 378 |                     Instruction::GetFunction(lib_name, func_name) => {
[INFO] [stdout]     |                                              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lib_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `func_name`
[INFO] [stdout]    --> src/architecture/optimizing_compiler.rs:378:56
[INFO] [stdout]     |
[INFO] [stdout] 378 |                     Instruction::GetFunction(lib_name, func_name) => {
[INFO] [stdout]     |                                                        ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_func_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arg_count`
[INFO] [stdout]    --> src/architecture/optimizing_compiler.rs:382:47
[INFO] [stdout]     |
[INFO] [stdout] 382 |                     Instruction::CallFunction(arg_count) => {
[INFO] [stdout]     |                                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_arg_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `execution_engine` is never read
[INFO] [stdout]   --> src/lib.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Ruby {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     execution_engine: ExecutionEngine,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `next_module_id` is never read
[INFO] [stdout]   --> src/codegen/mod.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | struct ConversionContext {
[INFO] [stdout]    |        ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 49 |     next_module_id: ModuleId,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `next_module_id` is never used
[INFO] [stdout]   --> src/codegen/mod.rs:91:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl ConversionContext {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 91 |     fn next_module_id(&mut self) -> ModuleId {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ir_to_vm` is never used
[INFO] [stdout]    --> src/codegen/mod.rs:352:8
[INFO] [stdout]     |
[INFO] [stdout] 352 | pub fn ir_to_vm(_program: &Program) -> Result<Vec<u8>> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `allocate`, `memory_used`, and `set_threshold` are never used
[INFO] [stdout]   --> src/gc/mod.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub trait GC {
[INFO] [stdout]    |           -- methods in this trait
[INFO] [stdout] 13 |     /// 分配新对象
[INFO] [stdout] 14 |     fn allocate(&mut self, value: RubyValue) -> RubyValue;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     fn memory_used(&self) -> usize;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 19 |     /// 设置内存阈值
[INFO] [stdout] 20 |     fn set_threshold(&mut self, threshold: usize);
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `generation` and `threshold` are never read
[INFO] [stdout]   --> src/gc/generational.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | struct GenerationConfig {
[INFO] [stdout]    |        ---------------- fields in this struct
[INFO] [stdout] 19 |     /// 代的类型
[INFO] [stdout] 20 |     generation: Generation,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 21 |     /// 内存阈值
[INFO] [stdout] 22 |     threshold: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `old_config` is never read
[INFO] [stdout]   --> src/gc/generational.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct GenerationalGC {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 38 |     old_config: GenerationConfig,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `allocate`, `memory_used`, `set_threshold`, and `set_logging` are never used
[INFO] [stdout]    --> src/gc/generational.rs:76:12
[INFO] [stdout]     |
[INFO] [stdout]  47 | impl GenerationalGC {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub fn allocate(&mut self, value: RubyValue) -> RubyValue {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn memory_used(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn set_threshold(&mut self, generation: Generation, threshold: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn set_logging(&mut self, enable: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `threshold` is never read
[INFO] [stdout]   --> src/gc/incremental.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct IncrementalGC {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 28 |     threshold: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `allocate`, `memory_used`, `set_threshold`, `set_logging`, and `state` are never used
[INFO] [stdout]    --> src/gc/incremental.rs:65:12
[INFO] [stdout]     |
[INFO] [stdout]  43 | impl IncrementalGC {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub fn allocate(&mut self, value: RubyValue) -> RubyValue {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub fn memory_used(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn set_threshold(&mut self, threshold: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 240 |     pub fn set_logging(&mut self, enable: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn state(&self) -> IncrementalGCState {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Sweeping` and `Completed` are never constructed
[INFO] [stdout]   --> src/gc/concurrent.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | enum ConcurrentGCState {
[INFO] [stdout]    |      ----------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 38 |     Sweeping,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 39 |     /// 完成阶段
[INFO] [stdout] 40 |     Completed,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConcurrentGCState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `objects`, `threshold`, `memory_used`, and `enable_logging` are never read
[INFO] [stdout]   --> src/gc/concurrent.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct ConcurrentGC {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 47 |     /// 已分配的对象
[INFO] [stdout] 48 |     objects: Arc<Mutex<Vec<Box<RubyValue>>>>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 49 |     /// 内存使用阈值
[INFO] [stdout] 50 |     threshold: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 51 |     /// 当前内存使用量
[INFO] [stdout] 52 |     memory_used: Arc<Mutex<usize>>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     enable_logging: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/gc/concurrent.rs:87:12
[INFO] [stdout]     |
[INFO] [stdout]  65 | impl ConcurrentGC {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub fn allocate(&mut self, value: RubyValue) -> RubyValue {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn mark(&self, roots: &[&RubyValue]) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     fn sweep(&self) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     fn gc_thread_fn(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn start(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 277 |     pub fn memory_used(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     pub fn set_threshold(&mut self, threshold: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 293 |     pub fn set_logging(&mut self, enable: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `JITCompiler` is never used
[INFO] [stdout]   --> src/jit/mod.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait JITCompiler {
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OptimizedJIT` is never constructed
[INFO] [stdout]   --> src/jit/mod.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct OptimizedJIT {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/jit/mod.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl OptimizedJIT {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JITCache` is never constructed
[INFO] [stdout]    --> src/jit/mod.rs:513:12
[INFO] [stdout]     |
[INFO] [stdout] 513 | pub struct JITCache {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `increment_count`, `is_compiled`, `get_compiled`, and `cache_compiled` are never used
[INFO] [stdout]    --> src/jit/mod.rs:529:12
[INFO] [stdout]     |
[INFO] [stdout] 524 | impl JITCache {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 529 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 540 |     pub fn increment_count(&mut self, key: usize) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 553 |     pub fn is_compiled(&self, key: usize) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 564 |     pub fn get_compiled(&self, key: usize) -> Option<&Box<dyn Fn(&mut Context, &mut [RubyValue]) -> RubyResult<()>>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 573 |     pub fn cache_compiled(&mut self, key: usize, func: Box<dyn Fn(&mut Context, &mut [RubyValue]) -> RubyResult<()>>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VMState` is never constructed
[INFO] [stdout]    --> src/vm/mod.rs:629:8
[INFO] [stdout]     |
[INFO] [stdout] 629 | struct VMState {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/architecture/optimizing_compiler.rs:553:27
[INFO] [stdout]     |
[INFO] [stdout] 553 |         Instruction::Jump(offset) => {
[INFO] [stdout]     |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `execute` are never used
[INFO] [stdout]    --> src/vm/mod.rs:650:8
[INFO] [stdout]     |
[INFO] [stdout] 648 | impl VMState {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] 649 |     /// 创建新的虚拟机状态
[INFO] [stdout] 650 |     fn new(context: Arc<Mutex<Context>>, gc: Arc<Mutex<dyn GC>>) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 664 |     fn execute(&mut self, instructions: &[Instruction]) -> RubyResult<()> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `func_builder_ctx` is never read
[INFO] [stdout]   --> src/architecture/optimizing_compiler.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct OptimizingCompiler {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     func_builder_ctx: FunctionBuilderContext,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `hotness_detector` is never used
[INFO] [stdout]    --> src/architecture/execution_engine.rs:118:12
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl ExecutionEngine {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn hotness_detector(&self) -> Arc<HotnessDetector> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_count` and `reset_count` are never used
[INFO] [stdout]   --> src/architecture/hotness_detector.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl HotnessDetector {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn get_count(&self, code_id: usize) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn reset_count(&self, code_id: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ProfileEvent` is never used
[INFO] [stdout]   --> src/profiler/profiler.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum ProfileEvent {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/architecture/optimizing_compiler.rs:556:34
[INFO] [stdout]     |
[INFO] [stdout] 556 |         Instruction::JumpIfFalse(offset) => {
[INFO] [stdout]     |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/architecture/optimizing_compiler.rs:559:33
[INFO] [stdout]     |
[INFO] [stdout] 559 |         Instruction::JumpIfTrue(offset) => {
[INFO] [stdout]     |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class`
[INFO] [stdout]    --> src/lib.rs:246:37
[INFO] [stdout]     |
[INFO] [stdout] 246 |     pub fn define_method(&mut self, class: &str, name: &str, _func: Box<dyn Fn()>) -> Result<()> {
[INFO] [stdout]     |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_class`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/lib.rs:246:50
[INFO] [stdout]     |
[INFO] [stdout] 246 |     pub fn define_method(&mut self, class: &str, name: &str, _func: Box<dyn Fn()>) -> Result<()> {
[INFO] [stdout]     |                                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Generation` is more private than the item `GenerationalGC::set_threshold`
[INFO] [stdout]    --> src/gc/generational.rs:234:5
[INFO] [stdout]     |
[INFO] [stdout] 234 |     pub fn set_threshold(&mut self, generation: Generation, threshold: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `GenerationalGC::set_threshold` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Generation` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/gc/generational.rs:10:1
[INFO] [stdout]     |
[INFO] [stdout]  10 | enum Generation {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `IncrementalGCState` is more private than the item `IncrementalGC::state`
[INFO] [stdout]    --> src/gc/incremental.rs:248:5
[INFO] [stdout]     |
[INFO] [stdout] 248 |     pub fn state(&self) -> IncrementalGCState {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `IncrementalGC::state` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `IncrementalGCState` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/gc/incremental.rs:10:1
[INFO] [stdout]     |
[INFO] [stdout]  10 | enum IncrementalGCState {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `execution_engine` is never read
[INFO] [stdout]   --> src/lib.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Ruby {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     execution_engine: ExecutionEngine,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `next_module_id` is never read
[INFO] [stdout]   --> src/codegen/mod.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | struct ConversionContext {
[INFO] [stdout]    |        ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 49 |     next_module_id: ModuleId,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `next_module_id` is never used
[INFO] [stdout]   --> src/codegen/mod.rs:91:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl ConversionContext {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 91 |     fn next_module_id(&mut self) -> ModuleId {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ir_to_vm` is never used
[INFO] [stdout]    --> src/codegen/mod.rs:352:8
[INFO] [stdout]     |
[INFO] [stdout] 352 | pub fn ir_to_vm(_program: &Program) -> Result<Vec<u8>> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `allocate`, `memory_used`, and `set_threshold` are never used
[INFO] [stdout]   --> src/gc/mod.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub trait GC {
[INFO] [stdout]    |           -- methods in this trait
[INFO] [stdout] 13 |     /// 分配新对象
[INFO] [stdout] 14 |     fn allocate(&mut self, value: RubyValue) -> RubyValue;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     fn memory_used(&self) -> usize;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 19 |     /// 设置内存阈值
[INFO] [stdout] 20 |     fn set_threshold(&mut self, threshold: usize);
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `generation` and `threshold` are never read
[INFO] [stdout]   --> src/gc/generational.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | struct GenerationConfig {
[INFO] [stdout]    |        ---------------- fields in this struct
[INFO] [stdout] 19 |     /// 代的类型
[INFO] [stdout] 20 |     generation: Generation,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 21 |     /// 内存阈值
[INFO] [stdout] 22 |     threshold: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `old_config` is never read
[INFO] [stdout]   --> src/gc/generational.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct GenerationalGC {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 38 |     old_config: GenerationConfig,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `allocate`, `memory_used`, `set_threshold`, and `set_logging` are never used
[INFO] [stdout]    --> src/gc/generational.rs:76:12
[INFO] [stdout]     |
[INFO] [stdout]  47 | impl GenerationalGC {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub fn allocate(&mut self, value: RubyValue) -> RubyValue {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn memory_used(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn set_threshold(&mut self, generation: Generation, threshold: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn set_logging(&mut self, enable: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `threshold` is never read
[INFO] [stdout]   --> src/gc/incremental.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct IncrementalGC {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 28 |     threshold: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `allocate`, `memory_used`, `set_threshold`, `set_logging`, and `state` are never used
[INFO] [stdout]    --> src/gc/incremental.rs:65:12
[INFO] [stdout]     |
[INFO] [stdout]  43 | impl IncrementalGC {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub fn allocate(&mut self, value: RubyValue) -> RubyValue {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub fn memory_used(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn set_threshold(&mut self, threshold: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 240 |     pub fn set_logging(&mut self, enable: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn state(&self) -> IncrementalGCState {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Sweeping` and `Completed` are never constructed
[INFO] [stdout]   --> src/gc/concurrent.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | enum ConcurrentGCState {
[INFO] [stdout]    |      ----------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 38 |     Sweeping,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 39 |     /// 完成阶段
[INFO] [stdout] 40 |     Completed,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConcurrentGCState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `objects`, `threshold`, `memory_used`, and `enable_logging` are never read
[INFO] [stdout]   --> src/gc/concurrent.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct ConcurrentGC {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 47 |     /// 已分配的对象
[INFO] [stdout] 48 |     objects: Arc<Mutex<Vec<Box<RubyValue>>>>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 49 |     /// 内存使用阈值
[INFO] [stdout] 50 |     threshold: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 51 |     /// 当前内存使用量
[INFO] [stdout] 52 |     memory_used: Arc<Mutex<usize>>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     enable_logging: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/gc/concurrent.rs:87:12
[INFO] [stdout]     |
[INFO] [stdout]  65 | impl ConcurrentGC {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub fn allocate(&mut self, value: RubyValue) -> RubyValue {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn mark(&self, roots: &[&RubyValue]) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     fn sweep(&self) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     fn gc_thread_fn(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn start(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 277 |     pub fn memory_used(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     pub fn set_threshold(&mut self, threshold: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 293 |     pub fn set_logging(&mut self, enable: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `JITCompiler` is never used
[INFO] [stdout]   --> src/jit/mod.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait JITCompiler {
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OptimizedJIT` is never constructed
[INFO] [stdout]   --> src/jit/mod.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct OptimizedJIT {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/jit/mod.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl OptimizedJIT {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JITCache` is never constructed
[INFO] [stdout]    --> src/jit/mod.rs:513:12
[INFO] [stdout]     |
[INFO] [stdout] 513 | pub struct JITCache {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `increment_count`, `is_compiled`, `get_compiled`, and `cache_compiled` are never used
[INFO] [stdout]    --> src/jit/mod.rs:529:12
[INFO] [stdout]     |
[INFO] [stdout] 524 | impl JITCache {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 529 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 540 |     pub fn increment_count(&mut self, key: usize) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 553 |     pub fn is_compiled(&self, key: usize) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 564 |     pub fn get_compiled(&self, key: usize) -> Option<&Box<dyn Fn(&mut Context, &mut [RubyValue]) -> RubyResult<()>>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 573 |     pub fn cache_compiled(&mut self, key: usize, func: Box<dyn Fn(&mut Context, &mut [RubyValue]) -> RubyResult<()>>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VMState` is never constructed
[INFO] [stdout]    --> src/vm/mod.rs:629:8
[INFO] [stdout]     |
[INFO] [stdout] 629 | struct VMState {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `execute` are never used
[INFO] [stdout]    --> src/vm/mod.rs:650:8
[INFO] [stdout]     |
[INFO] [stdout] 648 | impl VMState {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] 649 |     /// 创建新的虚拟机状态
[INFO] [stdout] 650 |     fn new(context: Arc<Mutex<Context>>, gc: Arc<Mutex<dyn GC>>) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 664 |     fn execute(&mut self, instructions: &[Instruction]) -> RubyResult<()> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `func_builder_ctx` is never read
[INFO] [stdout]   --> src/architecture/optimizing_compiler.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct OptimizingCompiler {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     func_builder_ctx: FunctionBuilderContext,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `hotness_detector` is never used
[INFO] [stdout]    --> src/architecture/execution_engine.rs:118:12
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl ExecutionEngine {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn hotness_detector(&self) -> Arc<HotnessDetector> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_count` and `reset_count` are never used
[INFO] [stdout]   --> src/architecture/hotness_detector.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl HotnessDetector {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn get_count(&self, code_id: usize) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn reset_count(&self, code_id: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ProfileEvent` is never used
[INFO] [stdout]   --> src/profiler/profiler.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum ProfileEvent {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RubyError` and `RubyValue`
[INFO] [stdout]  --> tests/performance_test.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ruby_types::{RubyError, RubyValue};
[INFO] [stdout]   |                  ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `vm` as mutable, as it is not declared as mutable
[INFO] [stdout]   --> tests/jit_performance_test.rs:23:22
[INFO] [stdout]    |
[INFO] [stdout] 23 |         let result = vm.execute(&instructions);
[INFO] [stdout]    |                      ^^ cannot borrow as mutable
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let mut vm = VM::new();
[INFO] [stdout]    |         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0596`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ruby` (test "jit_performance_test") due to 1 previous error
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] running `Command { std: "docker" "inspect" "91d6823128f646a7543d44b91c208590f09ddbe07495bebb2ae0162f6ddf5ec4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "91d6823128f646a7543d44b91c208590f09ddbe07495bebb2ae0162f6ddf5ec4", kill_on_drop: false }`
[INFO] [stdout] 91d6823128f646a7543d44b91c208590f09ddbe07495bebb2ae0162f6ddf5ec4
